def unfoldr[A, B]: (B => Option[(A, B)]) => B => List[A]